$(function() {
	/* 1. 登录验证 前端校验功能  bootstrap validator */
    // 》1.完整的表单结构  form   input  submit 这些元素
    // 》2.表单元素需要对应的名字 name="username"
    // 》3.初始化表单验证组件 插件
    // 》4.配置组件功能
    // 》5.配置具体的属性需要的校验规则
    $('#login').bootstrapValidator({
     	message: 'This value is not valid',
        feedbackIcons: {/*input状态样式图片*/
             valid: 'glyphicon glyphicon-ok',
             invalid: 'glyphicon glyphicon-remove',
             validating: 'glyphicon glyphicon-refresh'
         },
        fields: {/*验证：规则*/
            username: {//验证input项：验证规则
                message: '用户名无效',
                validators: {
                    notEmpty: {//非空验证：提示消息
                        message: '用户名不能为空'
                    },
                    stringLength: {
                        min: 3,
                        max: 12,
                        message: '用户名长度必须在3到12之间'
                    },
                    regexp: {
                        regexp: /^[a-zA-Z0-9_\.]+$/,
                        message: '用户名由数字字母下划线和.组成'
                    },
                    /* 设置错误信息 和规则无关 和后台校验有关系 */
                    callback: {
                        message: '用户名错误'
                    }
                }
            },
            password: {
                message:'密码无效',
                validators: {
                    notEmpty: {
                        message: '密码不能为空'
                    },
                    stringLength: {
                        min: 6,
                        max: 30,
                        message: '用户名长度必须在6到30之间'
                    },
                    identical: {//相同
                         field: 'password', //需要进行比较的input name值
                         message: '两次密码不一致'
                     },
                    different: {//不能和用户名相同
                        field: 'username',//需要进行比较的input name值
                        message: '不能和用户名相同'
                    },
                    regexp: {
                        regexp: /^[a-zA-Z0-9_\.]+$/,
                        message: '密码只能由数字字母下划线和点组成'
                    },
                    /* 设置错误信息 和规则无关 和后台校验有关系 */
                    callback: {
                        message: '密码错误'
                    }
                }
            }
        }
    }) // 3. 点击登录
    .on('success.form.bv', function(e) {
        // 3.1 禁用默认提交的事件 因为要使用ajax提交而不是默认的提交方式
        e.preventDefault()
        // 3.2 获取当前的表单  serialize() 方法通过序列化表单值 序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中
        var $form = $(e.target)
        // console.log($form.serialize()) //  username=itcast&password=111111
        // 3.3 发送登录请求
        $.ajax({
            type: 'post',
            url: '/employee/employeeLogin',
            data: $form.serialize(),
            dataType: 'json',
            success: function(data){
                if (data.success) {
                    /* 后台管理员 root 123456 */
                    // 3.3.1登录成功
                    location.href = 'index.html'
                } else {
                	// 3.3.2 登录不成功
                    // 恢复可提交的按钮*/
                    $form.data('bootstrapValidator').disableSubmitButtons(false)
                    // 指定某一个表单元素的错误提示
                    /* NOT_VALIDATED, VALIDATING, INVALID or VALID */
                    if(data.error == 1000){
                        $form.data('bootstrapValidator').updateStatus('username','INVALID','callback')
                    }else if(data.error == 1001){
                        $form.data('bootstrapValidator').updateStatus('password','INVALID','callback')
                    }
                }
            }
        })
    })
     
    /* 2. 重置验证 */
    $('.btn-default[type="reset"]').on('click', function() {
    	$('#login').data("bootstrapValidator").resetForm()
    })
   
})